在修業之前,先大約理解後面會講到的東西。
技術提及的方向,跟不提及的方向,以及會預備推薦要知道的知識。
目前讀起來書本偏重於 JS 函式庫的設計,說明比較深入的 JS 物件、閉包、函式用法,
但不基於或提及瀏覽器以外 Node.js 環境,與現在JS 框架。
另外函式庫的穩定性跟效能也極度重要,所以書裡也說明了測試、效能跟除錯技巧等。
// 物件中的函式
let profile = {
firstname: 'Hu',
lastname: 'Jim',
callme: function () {
console.log(`My name is ${this.firstname} ${this.lastname}`)
}
}
profile.callme()
//or 函式建構物件
function Profile(first, last, age, eye) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eye;
}
const myInfo = new Profile("Jim", "Hu", 50, "black");
//or 函示中的函式
let callme = (firstname) => {
return (nickname) => {
let title = firstname || '';
let lastname = nickname || 'Jimmy';
console.log(`My name is ${firstname} ${lastname}`)
}
}
callme('Peter')('Pan')
setTimeout(functionRef, delay, param1, param2, /* … ,*/ paramN)
setInterval(func, delay, arg0, arg1, /* … ,*/ argN)
//正規後續補充,大約如下
var re = new RegExp('ab+c');
JS 的高階功能
eval() 函數會將傳入的字串當 JavaScript 程式碼進行執行,現今 MDN 文件建議使用 Function 替代處理,在後面文章補充。看看以下範例
const sayHello = 'alert("hello eval")'
eval(sayHello)
WARNING:
eval() 是一個危險的函示,它使用與調用者相同的權限執行代碼。如果你用 eval() 運行的字符串程式被惡意修改,您最终可能會在您的網頁/或插鍵的權限下,在用戶電腦上運行惡意程式。
是不是有一點 Fu 了呢?下集待續
Be fixed on the version, but flexible on the journey. —— Jeff Bezos
https://gs.statcounter.com/
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/with
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/eval